package cn.itsource.basic.service;

import cn.itsource.basic.query.BaseQuery;
import cn.itsource.basic.util.PageList;

import java.util.List;

public interface IBaseService<T> {
    /**
     * 查询单个对象
     * @param id
     * @return
     */
    T findOne(Long id);
    /**
     * 查询所有
     * @return
     */
    List<T> findAll();

    /**
     * 添加对象
     * @param t
     */
    void add(T t);

    /**
     * 修改对象
     * @param t
     */
    void update(T t);

    /**
     * 删除一个对象
     * @param id
     */
    void delete(Long id);


    //分页：1.先查询总数量 2.再查询当前页的数据
    //分页查询：有什么参数？ 有什么返回值？ queryPage(BaseQuery baseQuery)
    //要做分页：总数量【数据库查询】 + 分页的数据【currentPage，pageSize】
    //当一个方法中要返回多个值的时候：1.Map 2.对象
    PageList<T> queryPage(BaseQuery baseQuery);
}
